Command (ddd)
Commandパターンとは関係ないmrsekut.icon
この図がわかりやすい
https://gyazo.com/85cb0ce6415fef89c7303da985f5d09eGyazoの画像ロック.icon
Commandは、あるworkflowがリクエストを処理するために必要な全てのものを含む
e.g. コマンドの作成者、タイムスタンプなど
Commandは常に成功するわけではない
命名
命令形にする
table:例
↓Command ↓Domain Event
〇〇する 〇〇された・〇〇した
Make X happen X happened
Place an order Order placed
Commandによって、対応するDomain Eventが生じる
project内のCommandは共通するフィールドを持つこともある
genericsを使った型を用意すると良い
code:ts
type Command<Data> = {
data: Data;
timestamp: Date;
userId: UserId;
...
}
本当にこんな汎用型を用意して上手くいくのか?とちょっと思っているmrsekut.icon
userIdとか常に必要になるとは限らなくない?
完全なグローバルではなく、「Orderの文脈」での共通の型を用意する感じ?
参考
解説、具体例など、図解もある